package edu.ustb.efws.pipeline.collect.handler;

import java.util.Optional;

/**
 * 采集数据处理
 *
 * @author TS Group
 */
public interface PipelineHandler {

    /**
     * 采集数据处理
     *
     * @param data 需要处理的数据
     * @param chain {@link PipelineChain}
     */
    default void handle(Object data, PipelineChain chain){
        Optional<Object> optional = handle0(data);
        optional.ifPresent(chain::doHandle);
    }

    /**
     * 处理方法
     *
     * @param data 处理数据
     * @return 处理返回数据
     */
    Optional<Object> handle0(Object data);
}
